MODULE fem_A_matrix_LIP

   USE fem_global_types
   USE fem_global_consts
   IMPLICIT NONE
   PUBLIC

   REAL(REALK), PARAMETER :: A1mat_1st(1:4) = (/  &
         1.0000000000000000d+0                    &
       ,-1.0000000000000000d+0                    &
       ,-1.0000000000000000d+0                    &
       , 1.0000000000000000d+0 /)

   REAL(REALK), PARAMETER :: A1mat_2nd(1:9) = (/  &            
         1.1666666666666666d+0                    &
       ,-1.3333333333333333d+0                    &
       , 0.1666666666666666d+0                    &
       ,-1.3333333333333333d+0                    &
       , 2.6666666666666666d+0                    &
       ,-1.3333333333333333d+0                    &
       , 0.1666666666666666d+0                    &
       ,-1.3333333333333333d+0                    &
       , 1.1666666666666666d+0 /)

   REAL(REALK), PARAMETER :: A1mat_3rd(1:16) = (/  &
         1.2333333333333333d+0                     &
       ,-1.5750000000000000d+0                     &
       , 0.4500000000000000d+0                     &
       ,-0.1083333333333333d+0                     &
       ,-1.5750000000000000d+0                     &
       , 3.6000000000000000d+0                     &
       ,-2.4750000000000000d+0                     &
       , 0.4500000000000000d+0                     &
       , 0.4500000000000000d+0                     &
       ,-2.4750000000000000d+0                     &
       , 3.6000000000000000d+0                     &
       ,-1.5750000000000000d+0                     &
       ,-0.1083333333333333d+0                     &
       , 0.4500000000000000d+0                     &
       ,-1.5750000000000000d+0                     &
       , 1.2333333333333333d+0 /)
     
   REAL(REALK), PARAMETER :: A1mat_4th(1:25) = (/ &
         1.3029100529100529d+0                    &
       , -1.811640211640211640d0                  &
       , 0.8063492063492063492d0                  &
       ,-0.389417989417989417d0                   &
       , 0.0917989417989417d+0                    &
       ,-1.8116402116402116d+0                    &
       , 4.4021164021164021164d0                  &
       , -3.758730158730158730d0                  &
       , 1.5576719576719576720d0                  &
       ,-0.3894179894179894d+0                    &
       , 0.8063492063492063d+0                    &
       , -3.758730158730158730d0                  &
       , 5.9047619047619047619d0                  &
       ,-3.758730158730158730d0                   &
       , 0.8063492063492063d+0                    &
       ,-0.3894179894179894d+0                    &
       , 1.5576719576719576720d0                  &
       , -3.758730158730158730d0                  &
       , 4.4021164021164021164d0                  &
       ,-1.8116402116402116d+0                    &
       , 0.0917989417989417d+0                    &
       , -0.389417989417989417d0                  &
       , 0.8063492063492063492d0                  &
       ,-1.811640211640211640d0                   &
       , 1.3029100529100529d+0 /)
     
   REAL(REALK), PARAMETER :: A1mat_5th(1:36) = (/ &
         1.3711860670194003d+0                    &
       , -2.084022266313932980d0                  &
       , 1.2745260141093474427d0                  &
       ,-0.8611662257495590d+0                    &
       , 0.3789131393298059964d0                  &
       , -0.079436728395061728d0                  &
       ,-2.0840222663139329d+0                    &
       , 5.4287918871252204586d0                  &
       , -5.463238536155202821d0                  &
       , 3.3551036155202821d+0                    &
       , -1.615547839506172839d0                  &
       , 0.3789131393298059964d0                  &
       , 1.2745260141093474d+0                    &
       , -5.463238536155202821d0                  &
       , 8.7356701940035273369d0                  &
       ,-7.0408950617283950d+0                    &
       , 3.3551036155202821869d0                  &
       , -0.861166225749559082d0                  &
       ,-0.8611662257495590d+0                    &
       , 3.3551036155202821869d0                  &
       , -7.040895061728395061d0                  &
       , 8.7356701940035273d+0                    &
       , -5.463238536155202821d0                  &
       , 1.2745260141093474427d0                  &
       , 0.3789131393298059d+0                    &
       , -1.615547839506172839d0                  &
       , 3.3551036155202821869d0                  &
       ,-5.4632385361552028d+0                    &
       , 5.4287918871252204586d0                  &
       , -2.084022266313932980d0                  &
       ,-0.0794367283950617d+0                    &
       , 0.3789131393298059964d0                  &
       , -0.861166225749559082d0                  &
       , 1.2745260141093474d+0                    &
       , -2.084022266313932980d0                  &
       , 1.3711860670194003527d0 /)
  

  REAL(REALK), PARAMETER :: A0mat_1st(1:4) = (/ &
         0.3333333333333333333d+00              &
       , 0.1666666666666666666d+00              &
       , 0.1666666666666666666d+00              &
       , 0.3333333333333333333d+00 /)

  REAL(REALK), PARAMETER :: A0mat_2nd(1:9) = (/ &
        0.2666666666666666666d+00               &
       ,0.1333333333333333333d+00               &
       ,-0.066666666666666666d+00               &
       ,0.1333333333333333333d+00               &
       ,1.0666666666666666667d+00               &
       ,0.1333333333333333333d+00               &
       ,-0.066666666666666666d+00               &
       ,0.1333333333333333333d+00               &
       ,0.2666666666666666666d+00 /)

  REAL(REALK), PARAMETER :: A0mat_3rd(1:16) = (/&
            0.2285714285714285714d+00           &
         ,  0.1767857142857142857d+00           &
         ,  -0.064285714285714285d+00           &
         ,  0.0339285714285714285d+00           &
         ,  0.1767857142857142857d+00           &
         ,  1.1571428571428571429d+00           &
         ,  -0.144642857142857142d+00           &
         ,  -0.064285714285714285d+00           &
         ,  -0.064285714285714285d+00           &
         ,  -0.144642857142857142d+00           &
         ,  1.1571428571428571429d+00           &
         ,  0.1767857142857142857d+00           &
         ,  0.0339285714285714285d+00           &
         ,  -0.064285714285714285d+00           &
         ,  0.1767857142857142857d+00           &
         ,  0.2285714285714285714d+00 /)

   REAL(REALK), PARAMETER :: A0mat_4th(1:25) = (/ &
          0.2059964726631393298d+00               &
       ,  0.2088183421516754850d+00               &
       ,  -0.122751322751322751d+00               &
       ,  0.0395061728395061728d+00               &
       ,  -0.020458553791887125d+00               &
       ,  0.2088183421516754850d+00               &
       ,  1.2641975308641975309d+00               &
       ,  -0.270899470899470899d+00               &
       ,  0.1805996472663139329d+00               &
       ,  0.0395061728395061728d+00               &
       ,  -0.122751322751322751d+00               &
       ,  -0.270899470899470899d+00               &
       ,  1.3206349206349206349d+00               &
       ,  -0.270899470899470899d+00               &
       ,  -0.122751322751322751d+00               &
       ,  0.0395061728395061728d+00               &
       ,  0.1805996472663139329d+00               &
       ,  -0.270899470899470899d+00               &
       ,  1.2641975308641975309d+00               &
       ,  0.2088183421516754850d+00               &
       ,  -0.020458553791887125d+00               &
       ,  0.0395061728395061728d+00               &
       ,  -0.122751322751322751d+00               &
       ,  0.2088183421516754850d+00               &
       ,  0.2059964726631393298d+00 /)

  REAL(REALK), PARAMETER :: A0mat_5th(1:36) = (/  &
          0.1910974827641494308d+00               &
       ,  0.2327497444684944684d+00               &
       ,  -0.186481631794131794d+00               &
       ,  0.1072543390251723585d+00               &
       ,  -0.028653348965848965d+00               &
       ,  0.0138945256132756132d+00               &
       ,  0.2327497444684944684d+00               &
       ,  1.3982207992624659291d+00               &
       ,  -0.462681126743626743d+00               &
       ,  0.3593411796536796536d+00               &
       ,  -0.196893914341831008d+00               &
       ,  -0.028653348965848965d+00               &
       ,  -0.186481631794131794d+00               &
       ,  -0.462681126743626743d+00               &
       ,  1.5626252605419272086d+00               &
       ,  -0.512002465127465127d+00               &
       ,  0.3593411796536796536d+00               &
       ,  0.1072543390251723585d+00               &
       ,  0.1072543390251723585d+00               &
       ,  0.3593411796536796536d+00               &
       ,  -0.512002465127465127d+00               &
       ,  1.5626252605419272086d+00               &
       ,  -0.462681126743626743d+00               &
       ,  -0.186481631794131794d+00               &
       ,  -0.028653348965848965d+00               &
       ,  -0.196893914341831008d+00               &
       ,  0.3593411796536796536d+00               &
       ,  -0.462681126743626743d+00               &
       ,  1.3982207992624659291d+00               &
       ,  0.2327497444684944684d+00               &
       ,  0.0138945256132756132d+00               &
       ,  -0.028653348965848965d+00               &
       ,  0.1072543390251723585d+00               &
       ,  -0.186481631794131794d+00               &
       ,  0.2327497444684944684d+00               &
       ,  0.1910974827641494308d+00 /)
  
END MODULE fem_A_matrix_LIP
